using Engine;
using GameEntitySystem;

namespace Game
{
    public interface IInventory
    {
        Project Project
        {
            get;
        }

        int SlotsCount
        {
            get;
        }

        int VisibleSlotsCount
        {
            get;
            set;
        }

        int ActiveSlotIndex
        {
            get;
            set;
        }

        int GetSlotValue(int slotIndex);

        int GetSlotCount(int slotIndex);

        int GetSlotCapacity(int slotIndex, int value);

        int GetSlotProcessCapacity(int slotIndex, int value);

        void AddSlotItems(int slotIndex, int value, int count);

        void ProcessSlotItems(int slotIndex, int value, int count, int processCount, out int processedValue, out int processedCount);

        int RemoveSlotItems(int slotIndex, int count);

        void DropAllItems(Vector3 position);
    }
}
